/*
* @Author: Adolphus.Yao
* @Date:   2019-08-28 19:57:39
* @Last Modified by:   Adolphus.Yao
* @Last Modified time: 2019-08-28 21:53:57
*/
package main

import (
    "github.com/kataras/iris"

    "github.com/iris-contrib/middleware/cors"
)

func main() {
    app := iris.New()

    crs := cors.New(cors.Options{
        AllowedOrigins:   []string{"*"}, // allows everything, use that to change the hosts.
        AllowCredentials: true,
    })

    v1 := app.Party("/api/v1", crs).AllowMethods(iris.MethodOptions) // <- important for the preflight.
    {
        v1.Get("/home", func(ctx iris.Context) {
            ctx.WriteString("Hello from /home")
        })
        v1.Get("/about", func(ctx iris.Context) {
            ctx.WriteString("Hello from /about")
        })
        v1.Post("/send", func(ctx iris.Context) {
            ctx.WriteString("sent")
        })
        v1.Put("/send", func(ctx iris.Context) {
            ctx.WriteString("updated")
        })
        v1.Delete("/send", func(ctx iris.Context) {
            ctx.WriteString("deleted")
        })
    }

    app.Run(iris.Addr(":8080"))
}